Systems and methods of automated validation of electronic data via a user interface

ABSTRACT

Certain aspects of the present disclosure provide a system for obtaining electronic data from a network server accessible. The system comprises a communication device to electronically access an automated phone system via a telephone number and a memory circuit that stores a configuration file and a log file. The system further comprises a processor that identifies a record that includes a unique identifier for an entity and data to compare with corresponding data from the automated phone system. The processor is further configured to access and navigate the phone menu based on the configuration file and input a unique sequence of digits based on the instructions in the configuration file. The processor is also configured to obtain an audio message from the automated phone system, convert the audio message to a corresponding text message, and determine whether the corresponding text message indicates an error or includes the corresponding data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.17/182,110, filed Feb. 22, 2021, the entire contents of which are herebyincorporated by reference.

INTRODUCTION

Aspects of the present disclosure relate to systems and methods ofdynamically and automatically accessing and navigating user interfacesprovided by electronically connected servers to access data at theservers.

Many client-facing systems utilize user interfaces to enable clients toaccess relevant information. In some aspects, each client may have aunique identifier with which the systems associate the relevantinformation. The systems may employ the user interfaces to reduce costsfor having live attendants available to answer calls and provideinformation that is stored in a database. Thus, the user interfaces maysave costs for companies that operate the systems.

However, while costs may be saved for the companies operating thesystems, clients accessing such systems may spend large amounts of timenavigating the user interfaces. For example, when the systems utilizeautomated phone systems as the user interfaces, the clients must spendtime accessing the phone systems (for example, by dialing thecorresponding phone number), listening to recorded prompts, listening toinstructions or options for response, entering responses, and otherwisenavigating the phone systems. Based on the complexity of the phonesystems, such a process can take the client many minutes to access thesystems and obtaining the client's data from the server. For entitiesthat handle accessing the systems for a large number of clients, theprocess of manually accessing the systems and spending many minutesnavigating the systems to obtain the client's data from the server foreach client with employees and operators can be inefficient and costly.

For example, a few industries that utilize user interfaces in which theabove problems exist include healthcare (for example, where patientclients access user interfaces through which they can access healthand/or billing information, review and/or schedule appointments, updateinformation, and so forth), government agencies (for example, wherecitizen user access user interfaces through which they can accessgovernmental records, respond to inquiries, review and/or scheduleappointments, and so forth), travel (for example, where customer usersaccess user interfaces through which they can schedule, review, and/orchange travel plans, update contact information, and so forth),insurance (for example, where customer users access systems throughwhich they can review and/or update claims, request and/or updateinsurance coverage, and so forth), financial industries (for example,where customer users access systems through which they can reviewaccount information, request information, open accounts, apply forproducts, and so forth), and the like. Of course, the inventive subjectmatter is not specific to any one industry described herein and couldbenefit any other industry in which automated user interfaces are usedby clients or users to access, input, and/or update standardizedinformation (for example, information stored in a given format, and soforth) for which human interaction is not needed and may not be desired.

Thus, there is a need for improved systems and methods for accessingautomated user interfaces and obtaining data from the user interfacesafter navigating corresponding menus and/or options, and the presentdisclosure is directed toward overcoming one or more of the problemsidentified above and herein and/or providing advantages over priorsystems.

BRIEF SUMMARY

A system for obtaining electronic data from a server accessible via atelecommunications network is disclosed herein. The system comprises acommunication device, a memory circuit, and a processor. Thecommunications device is configured to electronically access anautomated phone system via the telecommunications network using atelephone number. The memory circuit is configured to store aconfiguration file and a log file. The configuration file comprisesinstructions for electronically navigating a phone menu of the automatedphone system, and the log file comprises details of transactions(positive and negative results) with the automated phone system. Theprocessor is configured to identify a record corresponding to an entity,where the record includes a unique identifier for the entity and data tobe compared with corresponding data accessible via the automated phonesystem. The processor is further configured to access the phone menu ofthe automated phone system via the communication device using thetelephone number and navigate the phone menu based on the configurationfile and via the communication device. The processor is also configuredto input, via the communication device, a unique sequence of digitscorresponding to the unique identifier in response to a prompt for theunique identifier from the automated phone system and based on theinstructions in the configuration file and obtain an audio message fromthe automated phone system in response to the input of the uniquesequence of digits. The processor is additionally configured to convertthe audio message to a corresponding text message, determine that thecorresponding text message includes the corresponding data, update theidentified record with the corresponding text message based on adetermination that the corresponding text message includes thecorresponding data, and update the log file based on the determinationthat the corresponding text message includes the corresponding data.

In another aspect, a method of obtaining electronic data is disclosed.The method comprises accessing a client file that comprises a pluralityof client records for a plurality of entities for whom respective datain the respective client record is compared to corresponding data from aserver and accessing a configuration file comprising instructions forelectronically navigating an automated user interface for the server toaccess the corresponding data for the plurality of entities. The methodalso comprises identifying a record corresponding to one of theplurality of entities, where the record includes a unique identifier forthe entity and the data to be compared with the corresponding dataaccessed via the automated user interface, and navigating the automateduser interface based on the instructions of the configuration file via acommunication device. The method further comprises inputting the uniqueidentifier in response to a prompt for the unique identifier from theautomated user interface via the communication device and determiningthat a message received in response to the input of the uniqueidentifier indicates an error accessing the corresponding data via theautomated user interface or includes the data. The method additionallycomprises updating the record for the entity with the corresponding databased on a determination that the message includes the correspondingdata and updating a log file based on the determination that the messageincludes the corresponding data.

In another aspect, another system for obtaining electronic data from aserver accessible via a telecommunications network is disclosed. Thesystem comprises a communication device, a memory circuit, and aprocessor. The communication device is configured to electronicallyaccess an automated user interface via the telecommunications networkusing a communication identifier. The memory circuit is configured tostore a log file comprising details of transactions with the automateduser interface and a plurality of records corresponding to a pluralityof entities, individual records of the plurality of records including aunique identifier for the corresponding entity and data to be comparedwith corresponding data accessible via the automated user interface. Theprocessor is configured to identify a record from the plurality ofrecords comprising the data for comparison with the corresponding dataaccessible via the automated user interface, dynamically navigate theautomated user interface via the communication device, and automaticallyinput, via the communication device, an alphanumeric sequence ofcharacters representing the unique identifier in response to a promptfor the unique identifier from the automated user interface. Theprocessor is further configured to determine that a message received inresponse to the input of the alphanumeric sequence of charactersincludes the corresponding data, update the record for the entity withthe corresponding data based on a determination that the messageincludes the corresponding data, and update a log file based on thedetermination that the message includes the corresponding data.

Various objects, features, aspects and advantages of the embodimentsdisclosed herein will become more apparent from the following detaileddescription of preferred embodiments, along with the accompanyingdrawing figures in which like numerals represent like components.

The following description and the related drawings set forth in detailcertain illustrative features of one or more embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments disclosed herein are described in detail withreference to the following figures, in which like reference numeralsrefer to like parts. The figures are provided for purposes ofillustration only and merely depict typical or exemplary embodiments.These figures are provided to facilitate the reader's understanding andshall not be considered limiting of the breadth, scope, or applicabilityof the embodiments. It should be noted that for clarity and ease ofillustration these drawings are not necessarily made to scale.

FIG. 1A depicts an example of an architecture of hardware systems andcomponents in which systems and methods described herein areimplemented.

FIG. 1B depicts an example data flow between components of thearchitecture of FIG. 1A involved in the systems and methods describedherein.

FIG. 2 depicts an example processing system that may be a device in thearchitecture of FIGS. 1A and 1B and configured to perform the methodsdescribed herein.

FIG. 3 depicts an example of a high-level data flow of communicationsfor confirming data corresponding to individuals between components inthe architecture of FIGS. 1A and 1B.

FIG. 4 depicts an example of a data flow of a method for accessing andnavigating an automated user interface to access the data correspondingto the individuals according to the data flow of FIG. 3 .

FIG. 5 depicts an example of a data flow of a method for accessing andnavigating the automated user interface using natural languageprocessing to access the data corresponding to the individuals accordingto the data flow of FIG. 3 and to generate instructions for navigatingthe automated user interface.

FIG. 6 depicts a detailed data flow of a method for accessing andnavigating menus in the automated user interface, including accessingand updating a data store and logging errors.

FIG. 7 depicts an example of a flowchart of an algorithm for identifyinga need to update and updating instructions for navigating the menus inthe automated user interface.

FIG. 8 depicts a flowchart for a method of using a system describedherein to update information in a client file using a configurationfile, according to the data flow of one or more of FIGS. 2, 3, and 5 anddynamically updating a managing interface.

FIGS. 9A-9D are example screenshots of a user interface provided by theservice provider system that implements the data flows of FIGS. 4-5 .

FIG. 10 depicts an example method for using an automated voice menunavigation system to update local records based on data from a remoteserver.

To facilitate understanding, identical reference numerals have beenused, where possible, to designate identical elements that are common tothe drawings. It is contemplated that elements and features of oneembodiment may be beneficially incorporated in other embodiments withoutfurther recitation.

DETAILED DESCRIPTION

Aspects of the present disclosure provide apparatuses, methods,processing systems, and computer-readable mediums for providingautomated methods to electronically access electronic user interfaces,navigate the user interfaces, provide a reference identifier to accessclient data, obtain the client data via the user interface, and comparethe client data accessed via the user interface with local client data.

As introduced above, electronic user interfaces often enable clients toaccess client data stored on or by company servers. In some instances,these user interfaces are accessible via a computing device, atelephone, and the like. Via these user interfaces, a client is able tonavigate through various options and request access to client datastored by the company servers that relates to the client.

For example, a Veteran (“Vet”) may obtain disability benefits(“benefits”) for medical and similar services and products from theDepartment of Veterans Affairs (“VA”). The VA may determine that eachVet has access to a certain level of benefits, for example, based on adisability level of the Vet. Over time, the level of benefits for aparticular Vet may change (for example, as the Vet's health worsens andadditional treatment or care is necessitated or improves and lesstreatment or care is needed). In some instances, the only way that theVet can identify the level of benefits or available benefits to whichthe Vet is entitled is to call the VA and access that information viathe VA's automated phone system (for example, an interactive voiceresponse (IVR) system). The Vet can call the VA at a specific phonenumber, navigate a menu of options, and enter an identifier (forexample, a confirmation number associated with the Vet or with aparticular procedure or benefits request) to identify whether the Vet'sbenefit level has changed. The VA can update corresponding informationmonthly, weekly, or on any other interval, such that the Vet may need tocall the VA multiple times to obtain the most accurate information.Furthermore, each Vet may have multiple files (for example, claims) forwhich the Vet is awaiting a benefits determination and for which updatescan only be obtained via calling the VA. For a client representativecompany that monitors and validates Vet benefits on behalf of aplurality of Vets, the company may telephonically validate each Vet'sbenefits by calling the VA and accessing the VA's phone menu. Thismanual process may require between 2 and 5 minutes per Vet.Additionally, the number of files at the VA may vary over time. Thus,when the company monitors and validates Vet records for a large numberof Vets, the process of monitoring and validating all of the Vets'records can expend large amounts of time.

With respect to the VA and Vet example, the Vet can access a VAweb-based or telephonic user interface to access and validate the Vet'sbenefits. More specifically, the Vet may have data regarding the Vet'sprevious benefits and a unique Vet identifier, confirmation number, orother reference identifier and wish to validate whether the Vet client'sbenefits have changed with respect to an event. The event may comprise aVet request for an increase in benefits, a health or life event that theVet experienced, and the like. Navigating the VA's user interface toobtain the Vet's benefits may require the Vet to call the VA's automatedvoice menu system, navigate a phone menu provided by the automated voicemenu system, enter the unique Vet identifier, confirmation number, orother reference identifier when prompted, and await an audio messagefrom the automated voice menu system with the VA's records regarding theVet's benefits. Once the Vet receives this data from the VA's automatedvoice menu system, the Vet may compare the received data with the datathe Vet had regarding previous benefits and determine whether there hasbeen any change in the Vet's benefits. The process of accessing the VA'sautomated voice menu system and comparing the received data with theprevious data may take the Vet approximately five minutes. Vet benefitservice providers, which may provide services to the Vets where theservice providers automatically monitor benefits for Vet clients andassist the Vet clients with claims, benefit adjustments, reimbursements,and the like, may utilize the VA's automated voice menu system to accessand validate the Vet benefits for thousands of Vets. When accessing andvalidating the client data takes approximately five minutes per Vet, thetime required to access and validate the Vet benefits for all Vetsrepresented by the Vet benefit service provider can be impractical andunfeasible.

Aspects described herein enable the Vet benefit service provider toemploy an automated computing device or system (“automated device”) toaccess the VA's automated voice menu system, navigate the correspondingphone menu, and obtain the VA's benefits data (for example, stored by aVA server in a database or similar data store) for each Vet representedby the Vet benefit service provider for comparison with stored benefitsdata (for example, stored in a Vet benefit service provider's databaseor similar data store) without manual, or human, involvement. In someembodiments, the Vet benefit service provider can further identify anydifference between the stored benefits data and the VA's benefits dataand determine whether the difference exceeds a threshold value. The Vetbenefit service provider may determine a change in a scope of benefitsof the entity when the difference exceeds the threshold value. Forexample, when the difference between the data exceeds the threshold, thedifference in the Vet's benefit data may indicate a change in the Vet'sbenefits, for example an increase or a decrease to a different benefitslevel. Additionally, based on such an increase or decrease, the Vetbenefit service provider may identify a corresponding value for the Vetbenefit service provider. For example, when the Vet's benefit level oramount increases, the Vet may owe the Vet benefit service provider anincreased amount or decreased amount, respectively. In some instances,one or more of the identified difference, the determined change, and theservice provider value in the database or corresponding data store.

Aspects described herein may integrate various technologies to providethe automated device. For example, the Vet benefits service provider mayutilize an automated phone dialing system that employs a configurationfile to navigate the phone menu presented by the VA's voice menu system.The configuration file may include instructions for navigating the phonemenu without having to process the phone menu each time the automatedphone dialing system accesses the VA's voice menu system. For example,the configuration file can include information regarding delays, whatvalues to enter at particular prompts or time in the call, when toprovide the Vet's unique identifier or reference number, and when torecord an audio response message from the VA's voice menu system thatincludes the VA's benefits data for the Vet associated with the providedunique identifier or reference number. Alternatively, or additionally,the Vet benefits service provider can employ a natural languageprocessing (NLP) device or service that actively interprets the phonemenu when the VA's voice menu system is accessed to obtain updatebenefits data for the Vet clients.

The automated device employed by the Vet benefits service provider mayprovide a user interface of its own for operators of the automateddevice to control and/or monitor the device or system. The Vet benefitsservice provider may store or maintain records for each Vet (“clientrecords”) that include personally identifiable information (“PII”) foreach Vet, for example, including Name, Social Security number, date ofbirth, current benefits level or rate, unique identifier, andtransaction reference number. The automated device may update the storedrecords with new information received from the VA. For example, when theautomated device accesses the VA's voice menu system and obtains VA datathat the Vet's benefit level increased, then the automated device mayupdate the client record for the Vet as stored or maintained by the Vetbenefits service provider based on the obtained VA data. Furthermore,the automated device may maintain or update a log file based on eachtransaction with the VA voice menu system (for example, for each Vetrecord for which the automated device accesses the VA voice menusystem). The log file may track errors and/or transaction recordsassociated with any Vet record for troubleshooting and/or diagnosticreview. In brief, and as will be described in further detail below, theautomated device may, for each Vet record stored or maintained by theVet benefits service provider:

-   -   Leverage an Internet Protocol (“IP”) or web-based telephone        system and/or public switched telephone network (“PSTN”) to        connect to a VA voice menu system and initiate a transaction        with the VA server with a phone call.    -   Navigate a phone menu provided by the VA voice menu system.        -   Navigate the phone menu using a configuration file.        -   Navigate the phone menu using NLP.    -   Employ a method and/or components to access the configuration        file and navigate the phone menu via data entry during the phone        call.    -   Employ a method and/or components to identify a Vet's identifier        or reference number and benefits data in the Vet records and        enter the identifier or reference number into the VA voice menu        system.    -   Record an audio response from the VA voice menu system after        entering the identifier or reference number.    -   Convert the recorded audio response to text.    -   Determine whether the text converted from the recorded response        includes the VA's benefits data for the Vet or error        information.    -   When the recorded response includes the VA's benefits data,        compare the VA's benefits data with the benefits data in the        Vet's records to determine a change in the Vet's benefits level.    -   Update the benefits data in the Vet's records based on        determination of the change in the Vet's benefits level.    -   Optionally identify a value to the Vet benefits service provider        based on the change in the Vet's benefit level.    -   Store any of the determined change in benefits level and the        identified value.

The examples provided herein focus on accessing a voice menu system userinterface for the VA via a phone call to monitor and/or validate Vetbenefits. However, it will be understood that the systems, methods, andcomputer-readable mediums described herein can similarly be used toautomatically access, navigate, and obtain information from varioustypes of user interfaces (for example, voice menu systems, web-baseduser interfaces, graphical user interfaces providing one or moreprompts, popups, windows, and the like) via various communications(telephone calls, video calls, Internet communications, web-basedtransactions, and the like) for various companies and/or industries. Theautomated device and corresponding systems, methods andcomputer-readable mediums provide various benefits over existingsystems. For example, the automated device enables a reduction inresources (for example, time, manpower, corresponding technology) overthe existing systems and provides for prompt identification and updatingof data. In some instances, the monitoring and validation of data maylead to a determination or further analysis of any data updates, forexample, generation of value indicators, and so forth.

Further details relating to the automated device and correspondingmethods, data flows, and the like, are provided below.

Example System for Obtaining Electronic Data from a Server

FIG. 1A depicts an example of an architecture 100 of hardware andcomponents in which aspects described herein are implemented, accordingto aspects of the present disclosure.

In the depicted example, the architecture 100 includes one or moreservers 102, which store and provide data to clients or other entities.The architecture 100 also includes client devices 110, which individualclients may use to access the server 102 and obtain informationtherefrom, and a service provider system 106, which may operate toaccess the server 102 on behalf of one or more of the clients. Thesecomponents of the architecture 100 are linked by a network 105 via whichthese components can communicate. The server 102 and the serviceprovider system 106 may be locally coupled to a database 103 and adatabase 108, respectively. In some embodiments, though not shown inFIG. 1A, one or both of the database 103 and the database 108 may becoupled directly to the network 105, or through a gateway, anapplication programming interface (API), or the like.

The server 102 may comprise one or more dedicated servers, or mayinstead comprise cloud instances, which utilize shared resources of oneor more servers. These servers or cloud instances may be collocatedand/or geographically distributed. The server 102 may be owned oroperated by the company or on behalf of the company and provide clientaccess to data and/or interfaces. The server 102 may also comprise or becommunicatively connected to an application or user interface (not shownin FIG. 1A). The server 102 may also be communicatively connected to oneor more external systems (for example, the Internet, various websites, apublic switched telephone network (PSTN), Internet Protocol (IP)telephony systems, a cellular network, apps, other servers, and soforth) via the network 105. The server 102 may be implemented as or byone or more computing devices, for example a computing device 200illustrated in FIG. 2 discussed below.

The server 102 may comprise user interface and/or application serversthat host one or more user interfaces, telephony applications, web-basedapplications, and the like. In embodiments in which a website isprovided, the website may comprise one or more user interfaces,including, for example, webpages generated in HyperText Markup Language(HTML) or other language. In such instances, the server 102 transmits orserves these user interfaces in response to requests from client devices110 or the service provider system 106. In some embodiments, these userinterfaces may be served in the form of a wizard, in which case two ormore user interfaces or screens may be served in a sequential manner,and one or more of the sequential user interfaces may depend on aninteraction of the client device 110 and/or the service provider system106 with one or more preceding user interfaces. Such user interfaces maycomprise a combination of content and elements, such as text, images,videos, animations, references (for example, hyperlinks), frames, inputs(for example, text boxes, text areas, checkboxes, radio buttons,drop-down menus, buttons, forms, and the like), scripts (for example,JavaScript), and the like, including elements comprising or derived fromdata stored in one or more databases (for example, the database 103)that are locally and/or remotely accessible to the server 102.

In embodiments in which the server 102 provides telephony applications,the telephony applications may include a voice menu system (for example,an interactive voice response (IVR) system), and the server 102 maycomprise an interface with the PSTN, cellular networks, or an IPtelephony system that enables access to the server 102 and data storedin the database 103 via voice calls or corresponding messages. Theinterface of the server 102 may be configured to provide messages, forexample, to the voice menu system via telecommunications signaling, suchas dual-tone multi-frequency (DTMF) signaling, audio, or similarresponses. In such instances, the server 102 enables the clients to callone or more phone numbers and access the voice menu system via one ofthe client devices 110. The clients can access and navigate a phone menuprovided by the voice menu system using one of the client devices 110(for example, a telephone providing selection and data entrycapabilities via button presses) and respond to prompts and messages asnecessary to gain access to the client's data at the server 102. Thephone menu may provide prompts and options in response the clientdevices 110 or the service provider system 106 calling the phone numberand navigating the voice menu system. In some embodiments, the voicemenu system may request the client or client representative to enter anumber or sequence of numbers in response to the prompts. The voice menusystems may expect or receive responses to the prompts via thetelecommunications signaling (for example, the DTMF signaling, audio, orsimilar responses). Such voice menu systems may only provide audioand/or text message content, including content comprising or derivedfrom data stored in the database 103.

The server 102 may use the database 103 to store data (for example,client identifying data, data associated with the client, and the like).The server 102 may provide access to the data stored in the database 103to clients or client representatives that are authorized to receive suchinformation. The database 103 may comprise any suitable database,including without limitation MYSQL®, ORACLE®, IBM®, SQL SERVER®,SYBASE®, MICROSOFT ACCESS®, and the like, including cloud-based databaseinstances and proprietary databases. The data stored in the database 103may be stored in a standardized manner (for example, with particularfields and information) such that automated user interfaces are able toaccess data in the database 103. Access to the data in the database 103may be handled, for example, by server-side web and/or telephonytechnology, such as a servlet or other software module or telephonyapplication or voice menu system executed by the server 102.

The company may use the server 102 to store data associated with theclients for internal use and/or access by the clients or representativesof the clients. In the VA example introduced above, the company may bethe VA and the VA may operate or utilize the server 102 to storebenefits data regarding Vet clients. Thus, the database 103 may includefiles of records and other information for the Vet clients. The server102 may also provide access to those records and other information viauser interfaces to the Vet clients or the Vet benefits serviceproviders. For example, the Vets or the Vets benefits service providerscan access the Vets' client data at the server 102 using a web-basedform or web-browsing (for example, navigating options on a website andentering responses and/or identifying information). Alternatively, oradditionally, the server 102 may provide access to all or part of therecords in the database 103 via voice or message based telephoneconnections. For example, the Vets or the Vet benefits service providerscan use a telephone and navigate a phone menu provided by the voice menusystem, entering responses and/or identifying information to gain accessto the client's data at the server 102 based on prompts.

As introduced above, the communications between the client devices 110,the service provider system 106, the database 108, and/or the server 102are completed via the network 105. The network 105 may include theInternet, and the server 102 may communicate with the client devices 110through the Internet using standard transmission protocols, such asHyperText Transfer Protocol (HTTP), Secure HTTP (HTTPS), and the like.While the server 102 is illustrated as connected to various systemsthrough a single set of network(s) 105, it should be understood that theserver 102 may be connected to the various systems via different sets ofone or more networks (not shown). For example, the server 102 may beconnected to a telephone system enabling telephone calls with the server102. Additionally, or alternatively, the server 102 may be connected tothe client devices 110 and/or the service provider system 106 via theInternet, an intranet, an ad hoc network, and the like. The network 105may also include any wired or wireless network, for example, a cellularnetwork (for example, 3G, 4G LTE, 5G, and so forth), local area network(LAN), wide area network (WAN), and the like. Furthermore, while only afew client devices 110, service provider systems 106, and the database108 are illustrated, it should be understood that the architecture 100may comprise any number of client devices 110, servers 102, databases108, and service provider systems 106.

The client devices 110 may comprise any type of computing devicescapable of wired and/or wireless communication, including, withoutlimitation, desktop computers, laptop computers, tablet computers, smartphones or other mobile phones or devices, land-line telephones, wearablemobile devices, servers, and the like. The client devices 110 may be oneor more computing devices such as for example the computing device 200illustrated in FIG. 2 , discussed below.

The service provider system 106 may comprise a computing deviceconfigured to access the server 102 on behalf of one or more clients. Insome embodiments, the service provider system 106 may include a userinterface enabling operators of the service provider system 106 tointeract with various aspects of information obtained, processed, and/orutilized by the service provider system 106. For example, the serviceprovider system 106 may obtain information from the one or more clientsand use that information to access the server 102 (for example, via atelephone call, a website, or the like). The service provider system 106may utilize an automated system that dials a call to the server 102,navigates a phone menu provided by the voice menu system of the server102, provides a client identifier or reference number for the client tothe server 102 via the phone menu, and obtains the requested client datafrom the server 102. The service provider system 106 may repeat thisprocess for any and all clients for whom the service provider system 106has agreed to provide such a service and for whom the service providersystem 106 has the necessary client identifiers or reference numbers toprovide to the server 102 when requesting the server's client data. Insome instances, when the service provider system 106 obtains data formultiple clients, the service provider system 106 may make multiplecalls (one for each client) and complete the steps above. Alternatively,the service provider system 106 may make a single call and complete thesteps above for each client before disconnecting the single call. Insome instances, the service provider system 106 may make multiple callsand process client records for multiple clients in parallel.

FIG. 1B depicts example data flows between components of thearchitecture 100 of FIG. 1A, according to aspects of the presentdisclosure. For example, a client may use the client device 110 (forexample, a telephone) to call a phone number associated with the companyto gain access to the server 102. The call between the client device 110and the server 102 may occur via the PSTN, cellular networks, or IPtelephony system enabled by the network 105. The communications betweenthe client device 110 and the network 105 and, similarly, the network105 and the server 102 are bidirectional where the client providesidentification information and menu selections using the client device110, for example, a telephone, to navigate the phone menu of theserver's voice menu system to the server 102 and receives data from theserver 102 in response to the identification information and menuselections.

Similarly, the service provider system 106 may obtain clientinformation, for example the client's identifier or reference number,and phone menu instructions from the database 108 and use thisinformation to access the server 102 and access the data regarding theclient. The service provider system 106 may be configured to use thephone menu instructions (for example, stored in a configuration file) toidentify delays and options to select when navigating the phone menu ofthe server's voice menu system. The phone menu instructions may identifywhat sequence of “buttons to press” (i.e., what selections to enter viathe phone menu) to navigate the phone menu options appropriately toaccess the client's data at the server 102. Upon navigating the menuappropriately and entering the client's identification information, theservice provider system 106 may receive the client's data from theserver 102 via the phone connection (for example, as an audio message)and store the received data in the database 108, associated with therespective client. Further details of how the service provider system106 accesses and loads client information, accesses the server 102 via avoice menu system, and obtains and processes the server's client dataare provided below.

FIG. 2 illustrates an example wired and/or wireless computing device 200suitable for use in the systems and methods described herein. Withreference to the architecture 100 in FIGS. 1A and 1B, the device 200 mayimplement one or more of the server 102, the service provider system106, and one or more of the client devices 110. In some instances, thedevice 200 may be programmed with software and/or comprise firmwarecomprising instructions that, when executed by at least one processor,cause the device 200 to perform various functions, processes, and/ormethods described herein, for example, as described in connection FIGS.1A, 1B and 3-10 .

The device 200 preferably includes one or more processors, such asprocessor 205. Additional processors may be provided, such as anauxiliary processor to manage input/output, an auxiliary processor toperform floating point mathematical operations, a special purposemicroprocessor having an architecture suitable for fast execution ofsignal processing algorithms (for example, a digital signal processor),a slave processor subordinate to the main processing system (forexample, a back-end processor), an additional microprocessor orcontroller for dual or multiple processor systems, or a coprocessor.Such auxiliary processors may be discrete processors or may beintegrated with the processor 205.

The processor 205 may be connected to a communication bus 210, which mayinclude various channel for facilitating information transfer betweencomponents of the device 200. The communication bus 210 may comprise anystandard or non-standard bus architecture such as, for example, busarchitectures compliant with industry standard architecture (“ISA”),extended industry standard architecture (“EISA”), Micro ChannelArchitecture (“MCA”), peripheral component interconnect (“PCI”) localbus, or standards promulgated by the Institute of Electrical andElectronics Engineers (“IEEE”) including IEEE 488 general-purposeinterface bus (“GPIB”), IEEE 696/S-100, and the like.

The device 200 may include a main memory 215 and may also include asecondary memory 220. The main memory 215 may provide storage ofinstructions and data for programs executing on the processor 205. Forexample, the main memory 215 may provide storage and/or software for thevoice menu system and/or application operated by the server 102,corresponding software on the service provider system 106 that enablesthe service provider system 106 to dial a phone number, navigate thephone menu associated with the dialed phone number, and obtain clientdata from the phone menu system, among other features described herein.The main memory 215 may store software modules that, when executed bythe processor 205, perform the functions described with reference to oneor more of FIGS. 1A, 1B and 3-10 . The main memory 215 may comprisesemiconductor-based memory, such as dynamic random access memory(“DRAM”) and/or static random access memory (“SRAM”). Othersemiconductor-based memory types include, for example, synchronousdynamic random access memory (“SDRAM”), Rambus dynamic random accessmemory (“RDRAM”), ferroelectric random access memory (“FRAM”), and thelike, including read only memory (“ROM”).

The secondary memory 220 may optionally include a code comprising one ormore instructions for causing the processor 205 to perform one or morefunctions. Specifically, the secondary memory 220 may include code 222for accessing a client record and a configuration file. Such code may beconfigured to access the client record from a client list identifying aplurality of records in a data store or database and a configurationfile including instructions for accessing and navigating a userinterface. The secondary memory 220 may further include code 224 fornavigating a user interface based on the configuration file. This codemay instruct the processor 205 to follow the instructions in theconfiguration file and use these instructions to know how, when, andwhat to enter data into the user interface to navigate the userinterface. Furthermore, the secondary memory 220 may include code 226for determining whether a received message is in error or requesteddata. These instructions may enable the processor 205 to convert anaudio message to text for further processing and parsing by theprocessor 205. Based on the parsing, the code 226 instructs theprocessor 205 to determine whether the converted text includes expecteddata or text in an expected format or not. The code 226 may tell theprocessor 205 that when the text is not in the expected format, the textrepresents an error and when the text is in the expected format, tofurther process the text. In some instances, the secondary memory 220includes code 228 for updating a client record and a log file. Suchinstructions may cause the processor 205 to update the client record andthe log file when the text includes the expected format of data or causethe processor 205 to update the log file when the text included anerror. In some instances, the secondary memory 220 includes code 229that instructs the processor 205 to navigate the user interface usingnatural language processing. Such instructions may cause the processor205 to utilize a NLP module (for example, a software or hardware module)to translate the phone menu such that the processor 205 (and the device200) can interact with the phone menu in real-time without utilizing theconfiguration file or in conjunction with the configuration file. Insome instances, the secondary memory 220 may include more or less codethan as shown and described.

In some embodiments, the secondary memory 220 may store code in aninternal memory and/or a removable storage medium, for example a floppydisk drive, a magnetic tape drive, a compact disc (“CD”) drive, adigital versatile disc (“DVD”) drive, and so forth.

In some instances, the secondary memory 220 may comprise anon-transitory computer readable medium having stored thereon computerexecutable code (i.e., software) and/or data, for example the code 222,224, 226, and/or 228 introduced above. The computer software or datastored on the secondary memory 220 is read into the device 200 forexecution by the processor 205. In alternative embodiments, thesecondary memory 220 may include other similar means for allowingcomputer programs or other data or instructions to be loaded into thedevice 200. Such means may include, for example, an external storagemedium 255 and/or a communication interface 240. Examples of externalstorage medium 255 may include an external hard disk drive or anexternal optical drive, or and external magneto-optical drive. Otherexamples of secondary memory 220 may include semiconductor-based memorysuch as programmable read-only memory (“PROM”), erasable programmableread-only memory (“EPROM”), electrically erasable read-only memory(“EEPROM”), or flash memory (block oriented memory similar to EEPROM).The removable storage medium may allow software and data to betransferred from an external storage medium 255 to the device 200.

The device 200 may also include an input/output (“I/O”) interface 235.The I/O interface 235 facilitates input from and output to externaldevices. For example the I/O interface 235 may receive input from akeyboard, mouse, touch screen, gestures detecting camera, speech commandmodule, etc. and may provide output to a display generated by thegraphical user interface. The I/O interface 235 is capable offacilitating input from and output to various alternative types of humaninterface and machine interface devices alike. As introduced above, thedevice 200 may also include the communication interface 240. Thecommunication interface 240 allows software and data to be transferredbetween the device 200 and external devices (for example, printers),networks, or information sources. For example, computer software orexecutable code may be transferred to the device 200 from a networkserver via the communication interface 240. Examples of thecommunication interface 240 include a modem, a network interface card(“NIC”), a wireless data card, a communications port, a PCMCIA slot andcard, an infrared interface, and an IEEE 1394 fire-wire, just to name afew. The communication interface 240 preferably implements industrypromulgated protocol standards, such as Ethernet IEEE 802 standards,Fiber Channel, digital subscriber line (“DSL”), asynchronous digitalsubscriber line (“ADSL”), frame relay, asynchronous transfer mode(“ATM”), integrated digital services network (“ISDN”), personalcommunications services (“PCS”), transmission control protocol/Internetprotocol (“TCP/IP”), serial line Internet protocol/point to pointprotocol (“SLIP/PPP”), and so on, but may also implement customized ornon-standard interface protocols as well. In some instances, thecommunication interface 240 enables communications via a networkedconnection, the IP telephony system, the cellular networks, or the PSTN.

Software and data transferred via the communication interface 240 aregenerally in the form of the electrical communication signals 245. Theelectrical communication signals 245 are preferably provided to thecommunication interface 240 via a communication channel 250. In oneembodiment, the communication channel 250 may be a wired or wirelessnetwork, or any variety of other communication links. The communicationchannel 250 carries the electrical communication signals 245 and can beimplemented using a variety of wired or wireless communication meansincluding wire or cable, fiber optics, conventional phone line, cellularphone link, wireless data communication link, radio frequency (“RF”)link, or infrared link, just to name a few.

Computer-executable code (i.e., computer programs or software), asintroduced above, can be stored in the main memory 215 and/or thesecondary memory 220. The computer programs can also be received via thecommunication interface 240 and stored in the main memory 215 and/or thesecondary memory 220. Such computer programs, when executed, enable thedevice 200 to perform the various functions of the present invention aspreviously described. In this description, the term “computer-readablemedium” is used to refer to any non-transitory computer-readable storagemedia used to provide computer executable code (for example, softwareand computer programs) to the device 200. Examples of these mediainclude the main memory 215, the secondary memory 220 (including theinternal memory, the removable storage medium, and the external storagemedium 255), and any peripheral device communicatively coupled with thecommunication interface 240 (including a network information server orother network device).

In an embodiment that is implemented using software, the software may bestored on a computer readable medium and loaded into the device 200 byway of the removable storage medium, the I/O interface 235, or thecommunication interface 240. In such an embodiment, the software can beloaded into the device 200 in the form of electrical communicationsignals 245. The software, when executed by the processor 205, may causethe processor 205 to perform the inventive features and functionspreviously described herein.

The device 200 may also include optional wireless communicationcomponents that facilitate wireless communication over a voice and overa data network. The wireless communication components comprise anantenna system 260, a radio system 265 and a baseband system 270. In thedevice 200, radio frequency (“RF”) signals are transmitted and receivedover the air by the antenna system 260 under the management of the radiosystem 265.

The device 200 further comprises a natural language processor 275configured to enable the device 200 to process content and enable thedevice to “understand” the processed content. In some instances, thenatural language processor 275 comprises software or code that enablesthe processor 205 to process and understand content and accuratelyextract information and/or insights from the content and generateresponses thereto, as appropriate. In some instances, the naturallanguage processor 275 is a separate processor from the processor 205that performs natural language processing on demand as needed by thedevice 200.

Example Data Flow for Accessing and Obtaining Electronic Data from aServer

FIG. 3 depicts an example of a high-level data flow 300 ofcommunications for confirming data corresponding to clients betweencomponents in the architecture 100 of FIGS. 1A and 1B.

The data flow 300 shown in FIG. 3 represents how the service providersystem 106, operating on behalf of one or more clients, may obtain aclient record, access the server 102 via a user interface of or hostedby the server 102, and obtain client data. The data flow 300 representshigh-level operations of an automated user interface navigation systemor application. Specifically, the data flow 300 may provide high-levelsteps of an automated method for accessing a user interface using theservice provider system 106 integrated with client data and aconfiguration file or navigation processing to navigate the userinterface to retrieve specific client data. This client data may beconverted to text and/or numbers for comparison against the integratedclient data to determine if there is a difference between the data,which may indicate a change in the data. Though not shown in the dataflow 300, the data flow 300 may involve creating and/or maintaining alog of all transactions and corresponding results as well as a file withdetails of the data comparison performed. In some instances, one or moreaspects of the data flow 300 is performed with an applicationprogramming interface (API).

The data flow 300 starts at block 302, where the service provider system106 may receive a client record from the database 108 and load theclient record for further actions. In some instances, as introducedabove, the service provider system 106 may comprise the device 200 ofFIG. 2 . Thus, the processor 205 may load the client record into themain memory 215 or secondary memory 220 after receiving the clientrecord from the database 108, for example, via the communicationinterface 240.

In some instances, each and/or individual clients have correspondingclient records in the database 108. The client records may includevarious information for the respective client, for example, personallyidentifiable information (“PIP”), confirmation or transaction referencenumbers, account information, and the like. In the instance of insuranceand/or benefits tracking records, the client records may also include acurrent level of benefits for the client, previous insurance claimsand/or benefits adjustment requests, and corresponding reference numbersfor previous and/or pending claims or benefits adjustment requests.

At block 304, the service provider system 106 may access the userinterface of by the server 102, for example, based on commands from theprocessor 205 and via the communication interface 240. In someinstances, the user interface is web-based and accessed via the Internetor another networked connection. Similarly, the user interface can bethe phone menu provided by the voice menu system of the server 102 andaccessed via the IP telephony system, the cellular networks, and/or thePSTN. Alternatively, or additionally, the service provider system 106may utilize any other type of user interface by which the server 102 maymake client data available to clients.

Once the service provider system 106 accesses the server 102 via a userinterface at block 304, the service provider system 106 automaticallynavigates options provided by the user interface at blocks 306 and 308.When the user interface is a graphical user interface (GUI), the serviceprovider system 106 may navigate the options by making appropriateselections and/or providing appropriate information to progress throughdifferent screens and/or prompts to arrive at a prompt or input for aclient identifier from the loaded client record, at block 310.Similarly, when the user interface is the phone menu (for example,voice-based system), the service provider system 106 may navigate thephone menu through different prompts and/or recordings by makingappropriate selections and entries (for example, by creating audio tonesassociated with numbered and other telephone keys) to arrive at theprompt or input for the client identifier from the loaded client record.

At block 310, the service provider system 106 may provide the clientidentifier for the client record loaded at block 302 to the userinterface.

The service provider system 106 may then obtain the client data from theserver 102 at block 312. The server 102 may provide or present theclient data visually (for example, as text or as part of a visualpresentation) when the user interface is web-based or graphical or maypresent the client data as audio (for example, when the user interfaceis the phone menu).

At block 314, the service provider system 106 may terminate theconnection or access to the server 102 and the update the client recordin the database 108 at block 316 based on the obtained client data fromblock 312. Further details regarding the navigation of the userinterface and processing of obtained client data are provided below withrespect to FIGS. 4-6, 8, and 9 .

Integrating the VA and Vet example above, at block 302, the Vet benefitsservice provider (for example, utilizing or embodied by the serviceprovider system 106) may load a client record for a Vet client from adatabase (for example, the database 108) of Vet client recordscorresponding to Vets that the Vet benefits service provider serves. Atblock 304, the Vet benefits service provider accesses the VA phonenumber (to access the VA server 102) and corresponding phone menu. TheVet benefit service provider can navigate the VA phone menu at blocks306 and 308 based on a configuration file with instructions fornavigating the phone menu or using NLP of the phone menu. At block 310,the Vet benefits service provider provides the client identifier orreference number for the loaded client record from block 302 beforereceiving the response from the VA at block 312. The Vet benefitsservice provider then terminates access to the VA phone number at block314 and then updates the client record and corresponding database basedon the data received from the VA at block 316.

Example Data Flow for Accessing and Obtaining Electronic Data from aServer Using a Configuration File

FIG. 4 depicts an example of a data flow 400 of an algorithm foraccessing and navigating an automated user interface provided by theserver 102 to access the data corresponding to the clients according tothe data flow 300 of FIG. 3 . The data flow 400 provides additionaldetails for some embodiments of obtaining the client data from theserver 102 by the service provider system 106, specifically via thephone menu provided by the voice menu system of the server 102.

At block 402, the service provider system 106 may receive a client filefrom the database 108 and load a client record from the client file. Theclient file may comprise client records for clients for which theservice provider system 106 is going to access the server 102 forconfirmation or updating of client data. The client records associatedwith the client file may include client identifying PII, anidentification, confirmation, reference, or transaction identifier,and/or client data to be validated or updated via communications withthe server 102. When the client file includes more than one clientrecord, then aspects of the data flow 400 may be performed iterativelyfor individual client records. For example, when the client fileincludes two client records that each include the identifier and theclient data to be validated or updated, aspects of the data flow 400(for example, blocks 404-418) may be repeated twice, once for eachclient record.

Once the client record is loaded (for example, into the main memory 215or secondary memory 220), the service provider system 106 may access aconfiguration file 401. The configuration file 401 may includeinstructions for communicating with the server 102 via the userinterface. For example, when the user interface is the voice menusystem, the configuration file may instruct the service provider system106 how to navigate the voice menu system when communicating with theserver 102.

In various embodiments, the configuration file may include detailsregarding accessing the user interface of the server 102 (for example,the phone number to dial to access the voice menu system), delays (forexample, how long to wait while the phone menu provides a recordedmessage), what value to enter into the phone menu (for example, valuesto progress through option trees or to enter the client identifier orreference number), when to record a message (for example, to obtaincorresponding client data from the server 102) and so forth. In someembodiments, the configuration file 401 further includes the phonenumber(s) to call to contact the server 102, a source of the clientidentifier or reference number to enter, where to save a responsereceived from the server, and where to save log and/or transactioninformation, a threshold for determining a change in data, and otherpotential configuration items. In some embodiments, the configurationfile 401 may identify how to encrypt and/or decrypt data from the clientrecords (for example, how to decrypt the client identifier to provide tothe server 102, if necessary). In some embodiments, the configurationfile 401 may comprise a structured data file, for example an XML, file,a JSON file, and/or the like.

At block 404, the service provider system 106 dials a phone number (forexample, as provided by the configuration file 401) for the server 102.At block 406, the service provider system 106 waits for an answer to thecall and initiation of the information exchange with the server 102. Insome instances, the configuration file 401 includes data regarding howlong to wait for the answer, for example, provided to the serviceprovider system 106 as time delay information 405. At block 408, theservice provider system 106 navigates the phone menu based on buttonpress and delay information 407 received from the configuration file401. At block 410, the service provider system 106 may enter or inputthe client identifier 409 or reference number, based on the button pressand delay information 407 from the configuration file 401. In responseto inputting the client identification information at block 410, theservice provider system 106 may obtain a response message from the phonemenu and the server 102, for example in the form of an audio message atblock 412. The service provider system 106 may convert the audio messageinto a text message at block 414 and then parse the converted textmessage at block 416. In some instances, parsing the converted textmessage comprises identifying when the text message includes thecorresponding client data or other information, such as an errormessage. For example, in some instances, a poor connection between theservice provider system 106 and the server 102 may result in loss ofinformation when the service provider system 106 is entering the clientidentification information at block 410, or changes in the phone menucan cause the instructions in the configuration file 401 to beincorrect. Thus, the converted message can include either thecorresponding client data or error information. At block 418, theservice provider system 106 updates the client data in the client recordwith the corresponding client data from the parsed message. This updatecan be stored in the database 108 to ensure that the database 108includes the updated information from the server 102. The data flow 400can be repeated for subsequent client records in the client file untilthe client data for corresponding client records in the client file havebeen confirmed or updated with the corresponding client data from theserver 102.

For example, assume that the phone menu for the server 102 access viathe data flow 400 includes the following components:

-   -   Greeting of duration 5 seconds    -   1^(st) option tree with recitation duration of 7 seconds    -   2^(nd) option tree with recitation duration of 4 seconds    -   Prompt for client identifier or reference number with duration        of 5 seconds    -   Delay after entering client identifier or reference number with        duration of 5 seconds    -   Navigation from the 1^(st) option tree to the second option tree        requires entry of “8”    -   Navigation from the 2^(nd) option tree to the prompt for the        client identifier or reference number requires entry of “3”    -   Entry of client identifier or reference number requires 8 digit        entry followed by “#”

Thus, the instructions in the configuration file 401, as written in asentence structure, may instruct the service provider system 106 to dialthe phone number for the server 102 and:

-   -   Wait 12 seconds (5 seconds for greeting and 7 seconds for 1^(st)        option tree recitation)    -   Enter value “8” (to progress through the 1^(st) option tree to        the 2^(nd) option tree)    -   Wait 4 seconds (recitation for 2^(nd) option tree)    -   Enter value “3” (to progress through the 2^(nd) option tree and        to the prompt for the client identifier or reference number)    -   Wait 5 seconds (recitation of prompt for the client identifier        or reference number)    -   Enter 8 digit client identifier or reference number followed by        the “#”    -   Wait 5 seconds (delay after entering client identifier or        reference number)    -   Begin recording the response from the server 102.

Thus, using the instructions in the configuration file 401, the serviceprovider system 106 need not be capable of interpreting and/orunderstanding voice prompts and can still automatically navigate thephone menu and obtain the desired corresponding client data. However,the service provider system 106 implementing the data flow 400 may beunable to handle changes to the phone menu of the voice menu system.Instead, the service provider system 106 may utilize natural languageprocessing (NLP) to navigate dynamic phone menus (as discussed belowwith reference to FIG. 5 ) with reduced errors and minimal humaninteraction as compared to the data flow 400. In some instances, theservice provider system 106 may update the configuration file 401 basedon the NLP in response to changes identified in the phone menu (forexample, identification of error in previous navigation of the phonemenu, and the like).

Example Data Flow for Accessing and Obtaining Electronic Data from aServer Using Natural Language Processing

FIG. 5 depicts an example of a data flow 500 of a method for accessingand navigating the automated user interface of the server 102 using NLPto access the data corresponding to the clients according to the generaldata flow 300 of FIG. 3 .

The data flow 500 provides additional details for some embodiments ofobtaining the client data from the server 102 by the service providersystem 106, specifically via the user interface provided by the voicemenu system of the server 102. Blocks of the data flow 500 may beperformed by different components in the architecture 100 of FIG. 1A.For example, block 502 may be performed by one or both of the serviceprovider system 106 and the database 108. The blocks 501-518 may beperformed by the service provider system 106, as embodied by the device200 of FIG. 2 . Furthermore, the blocks 501-518 performed by the serviceprovider system 106 may be performed by different components of theservice provider system 106, as will be explained further below.

Block 502 may be similar to block 402 of FIG. 4 . Specifically, at block502, the service provider system 106 may receive the client file fromthe database 108 and load one the client records from the client file,for example, into memory. As described above, the client file maycomprise client records for clients for which the service providersystem 106 is going to access the server 102 for confirmation orupdating of client data. When the client file includes more than oneclient record, then aspects of the data flow 500 may be performed forindividual client records. For example, when the client file includestwo client records that each include the identifier and the client datato be confirmed or updated, aspects of the data flow 500 (for example,blocks 504-518) may be repeated, once for each client record. In someaspects, the database 108 may load the client file directly into a mainmemory 215 or the secondary memory 220 of the service provider system106. Alternatively, the database 108 and the service provider system 106may communicate via the communication interface 240 or another interfaceof the service provider system 106. When the service provider system 106receives the client file from the database 108 via an interface, theprocessor 205 of the service provider system 106 can load the clientfile and respective client records into the memory of the serviceprovider system 106.

Once the client record is loaded into the memory, the service providersystem 106 may dial a phone number for the server 102. The phone numberfor the server 102 may be received from a configuration file (not shown)or received from the database 108.

After dialing the phone number for the server 102 at the block 504, theservice provider system 106 may wait for an answer to the call at block506 and also activate a process 501 that enables the service providersystem 106 to perform NLP and dynamically interpret and navigate thephone menu of the server 102 accessed via dialing the phone number. Insome instances, the NLP is performed by the natural language processor275 of the device 200. The NLP enables the service provider system 106to interpret text and/or audio and understand data presented to theservice provider system 106. Thus, for the phone menu provided by thevoice menu system of the server 102 that is accessed by dialing thephone number, the service provider system 106 is able to understand theoption tree(s) and identify what option(s) to enter and when to enterthe client identifier or reference number.

By utilizing the natural language processor, the service provider system106 may reduce reliance on the configuration file 401 of FIG. 4 , orotherwise augment its capability with respect to the configuration file.This would enable the service provider system 106 to navigate the phonemenu even if there are any changes to the instructions in theconfiguration file (for example, due to changes in the phone menu, timedelays, and the like).

In some instances, the natural language processor 275 performs the NLPby recording any audio message presented by the phone menu, processingthe audio message to recognize the speech in the audio message, andconvert the recognized speech to appropriately navigate the phone menuand enter information (for example, responses at the option trees andentering of the client identifier or reference number). This may savememory resources where configuration files are not needed and eliminatetime lost to errors navigating the phone menu (for example, when changesare made to the phone menu). Instead, the service provider system 106may use the natural language processor 275 to identify or detect delaysin the phone menu, detect option trees, and identify what value to enterinto the phone menu to progress through option trees or to enter theclient identifier or reference number, determine when to record amessage (for example, to obtain corresponding client data from theserver 102), and so forth.

As shown in the data flow 500, the NLP process 501 may provide inputs toother blocks, for example blocks 506, 508, and 510. Specifically, theNLP process 501 may monitor the phone call to determine when the phonemenu answers the phone call to help the service provider system 106 waitfor the voice menu system to answer the phone call with the server 102.Similarly, at block 508, the NLP process 501 assists the serviceprovider system 106 to navigate the phone menu by parsing the phonemenus; identifying button press and delay information 507 to get to thepoint of entering the client identifier or reference number at block510. At block 510, the service provider system 106 may enter the clientidentifier (for example, obtained from the database 108 viacommunication 509 or already in the memory of the service providersystem 106 from loading the client record into the memory at block 502).

At block 512, the service provider system 106 may obtain and record theresponse message from the phone menu and the server 102 that includesthe corresponding client data (i.e., the data from the server 102 usedto compare or update the client data in the client record). In someinstances, the NLP process 501 may assist the service provider system106 to determine when it obtains the response message.

Optionally, at block 514, when the service provider system 106 isconverting the response message to text or a recognizable format, theservice provider system 106 may implement the NLP process 501 to assistin the conversion of the response message and/or the parsing of theconverted message at block 516. In combination, the conversion andparsing of the obtained message from block 512 may result in informationthat the service provider system 106 is able to process (for example, isin a format that the service provider system 106 can use to update thedatabase 108 at block 518 or utilize as a trigger for differentoperations (for example, update an error log if the obtained responsemessage indicates an error or successful receipt of data), and soforth). Thus, the converted message can include either the correspondingclient data or error information.

At block 518, the service provider system 106 updates the client data inthe client record with the corresponding client data from the parsedmessage. This update can be stored in the database 108 to ensure thatthe database 108 includes the updated information from the server 102.The data flow 500 can be repeated for subsequent client records in theclient file until the client data for corresponding client records inthe client file have been confirmed or updated with the correspondingclient data from the server 102.

For example, assume that the phone menu for the server 102 is similar tothe phone menu discussed with reference to the data flow 400:

-   -   Greeting of duration 5 seconds    -   1^(st) option tree with recitation duration of 7 seconds    -   2^(nd) option tree with recitation duration of 4 seconds    -   Prompt for client identifier or reference number with duration        of 5 seconds    -   Delay after entering client identifier or reference number with        duration of 5 seconds

Instead of reviewing and/or referencing the configuration file 401continuously throughout the connection with the phone menu, the serviceprovider system 106 operating according to the data flow 500 with theNLP process 501 may instead use the natural language processor 275 tonavigate the phone menu. The NLP process 501 may monitor the connectionbetween the service provider system 106 and the phone menu of the server102 and identify and monitor the greeting and the first option tree.Instead of referencing a record with appropriate delays, the NLP process501 can identify that the initial message is the greeting and cancontinue monitoring the messages until identifying that the 1^(st)option tree is being presented. The NLP process 501 can monitor the Ptoption tree and determine that the value of “8” should be entered toprogress through the P t option tree. For example, the NLP process 501may determine that the 1^(st) option tree requests the called toidentify the reason for calling and that option “8” is the option tochoose when the caller wishes to obtain confirmation or update of clientdata (for example, confirmation or update of client benefit level). Theservice provider system 106 can then use the NLP process 501 to monitorthe 2^(nd) option tree and identify to enter the value “3” to progressthrough the 2^(nd) option tree.

For example, the NLP process 501 may determine that the 2^(nd) optiontree requests that the caller indicate what kind of information thecaller will provide to obtain the corresponding client data, with option“3” indicating that the caller will provide the client identifier orreference number.

After entering the value “3”, the service provider system 106 may employthe NLP process 501 to monitor for the prompt for the client identifieror reference number, which may indicate a format in which the phone menuexpects to receive the client identifier or reference number (forexample, a length of 8 digits long followed by the “#” sign). Once theclient identifier or reference number is entered, the service providersystem 106 may use the NLP process 501 to determine when the serviceprovider system 106 should being recording or monitoring for theresponse message from the server 102. Thus, the service provider system106 may obtain the response message from the server at block 512. Asintroduced above, the service provider system 106 may implement the NLPprocess 501 to assist with converting and/or parsing the responsemessage at blocks 514 and 516. For example, the NLP process 501 canindicate to the service provider system 106 that the response messagedoes include the corresponding client data and the service providersystem 106 can use that indication to store the parsed message at block518 after converting the response message and parsing it to identify anerror or the corresponding client data. Similarly, the NLP process 501can indicate that the response message includes the error, which theservice provider system 106 can use to update an error or log file orotherwise track the error and corresponding information.

Thus, by implementing the NLP process 501, the service provider system106 can dynamically navigate the phone menu without concern for changesin the phone menu that may otherwise disrupt the configuration file dataflow 400 of FIG. 4 . Accordingly, the computerized service providersystem 106 can be “intelligent” and interpret and/or understand thephone menu and automatically navigate the phone menu to obtain thedesired corresponding client data.

Example Data Flow for Retrying Navigation of the Phone Menu in Responseto Errors

FIG. 6 depicts a detailed data flow of a method for accessing andnavigating menus in the automated user interface with a loop to retry,including accessing and updating a data store and logging errors andtransactions.

Specifically, the data flow 600 provides additional details for someembodiments of logging errors and retrying any failed logic orconnection attempts to the server 102. Blocks of the data flow 600 maybe performed by the service provider system 106 and/or the database 108in the architecture 100 of FIG. 1A. For example, the database 108 mayprovide data for one or more blocks 602, 604, and 608 of the data flow600, as described in more detail below. The blocks 602-628 may beperformed primarily by the service provider system 106, as embodied bythe device 200 of FIG. 2 .

At block 602, and as introduced above, the service provider system 106may dial the phone number for the server 102, where the database 108provides the phone number (for example, as part of the configurationfile). The service provider system 106 may then navigate the phone menufor the server 102, for example, based on instructions provided by thedatabase in the configuration file) through blocks 604-610. At one ormore of these blocks, the database 108 may provide navigationinstructions and/or details, as introduced above.

At block 612, when navigation is completed through blocks 604-610, theservice provider system 106 may determine whether the navigation hasended with a response message from the server 102. For example, in someinstances where there is an error in navigating the phone menu (forexample, the phone menu changed), following the instructions in theconfiguration file can result in not obtaining a response. For example,the configuration file 401 described above includes instructions to wait5 seconds after entering the client identifier or reference numberbefore recording the expected response from the server 102. However, ifthe previous navigation instructions are now incorrect and led toimproper navigation of a current phone menu, the voice menu system maydisconnect before the 5 second delay is completed, resulting in no databeing received from the server 102 for processing.

On the other hand, if the navigation is correct, the service providersystem 106 will receive a response to the input of the client identifieror reference number. Thus, a detection of whether the response messagewas even received can be an initial indicator that an error occurred.Thus, at block 612, if the navigation through the phone menu did notresult in data to process (i.e., the response from the server 102), thenthe service provider system 106 proceeds to block 620 and logs theerror. Alternatively, if the navigation through the phone menu didresult in data to process at block 612, then the service provider system106 proceeds to block 614.

At block 614, the service provider system 106 utilizes speech to textprocessing to convert the received message to text that the serviceprovider system 106 can manipulate.

At block 616, the service provider system 106 may parse the convertedmessage and determine whether the parsed message includes the clientdata requested from the server 102. If the parsed message does includethe client data requested from the server 102, then the service providersystem 106 proceeds to block 618.

If the parsed message does not include the client data requested fromthe server 102, then the service provider system 106 proceeds to block620. In some instances, the service provider system 106 can determinewhether the parsed data includes the requested client data based onexamining a size of the message (for example, a length of the message)and/or whether the parsed message includes expected value. For example,the server 102 may present the response to proper navigation and entryof information as a statement similar to “Your benefits level is X”. Ifthe service provider system 106 converts and parses the response messageand does not identify text corresponding to “Your benefits level is”,then the service provider system 106 can identify this response as anerror and not including the client data requested.

At block 618, the service provider system 106 may store the responsereceived into a data store (for example, memory or the database 108) andanalyze whether there is a change in the client data received from theserver 102 as compared to the client data in the corresponding clientrecord at block 624. In some embodiments, the comparison identifies anydifference between the client data in the client record and thecorresponding client data from the server 102 determine whether thedifference exceeds a threshold value. In some embodiments, the thresholdvalue is stored in a file or other data store, for example as part ofthe configuration file 401 or a separate thresholds file (not shown)that includes acceptable threshold information for changes, and thelike. The service provider system 106 may determine a change in a scopeof benefits of the client based on the difference exceeding thethreshold value. For example, when the difference between the clientdata in the client record and the corresponding client data exceeds thethreshold, the difference in the client data may indicate a change incorresponding benefits, values, and the like, for example an increase ora decrease.

At block 626, the service provider system 106 may progress to asubsequent client record in a client file from the database 108.

When the service provider system 106 determines that the response fromthe server 102 does not include the expected client data at block 616,the service provider system 106 may log the error at block 620. Loggingthe error at block 620 may also include the service provider system 106incrementing a retries counter.

At block 622, the service provider system 106 compares the retriescounter with a retries threshold value; if the retries counter valuedoes not exceed the retries threshold value, then the service providersystem 106 may retry navigation through the phone menu for the loadedclient record using the same navigation information, and so forth. Sucha retry may result in successfully obtaining the client data from theserver 102 when the navigation errors were caused by a poor connection,technical issues, or other conditions as opposed to changes in the phonemenu.

At block 622, when the retries counter value does exceed the retriesthreshold value, the service provider system 106 may progress to block628, where the error is logged (for example, in the database 108 inassociation with the corresponding client record, and so forth). Theservice provider system 106 the processes the next client record atblock 626.

Example Data Flow for Updating a Configuration File Using NaturalLanguage Processing

FIG. 7 depicts an example of a flowchart of a method for identifying aneed to update and updating instructions for navigating the menus in theautomated user interface of the server 102 of FIGS. 1A and 1B. The dataflow 700 provides additional details for some embodiments of errors thatoccur when obtaining the client data from the server 102 by the serviceprovider system 106, specifically via the user interface provided by thevoice menu system of the server 102, for example, according to the dataflow 400 of FIG. 4 .

Blocks of the data flow 700 may be performed one or more components inthe architecture 100 of FIG. 1A. In some instances, the service providersystem 106 may perform blocks 702-722 of the data flow 700, asimplemented by the device 200 of FIG. 2 . More specifically, differentcomponents of the service provider system 106 may perform the blocks702-722, as will be explained further below.

At block 702, the service provider system 106 parses the convertedmessage (as obtained from the server 102). Block 702 may correspond toblock 416 of the data flow 400 of FIG. 4 or block 516 of the data flow500 of FIG. 5 . As introduced above, parsing the converted message caninclude the service provider system 106 identifying that the obtainedresponse message includes the corresponding client data to compare withor update the client data in the client record from the database 108 orthe error message. The error message can indicate various errors. Forexample, the error can indicate that the value(s) entered into the phonemenu (for example, at the option trees or in response to the prompt) areinvalid, suggesting that the phone menu has changed. Thus, the error canindicate an error in navigating the phone menu. Alternatively, oradditionally, the error can indicate that the client identifier orreference number entered (for example, as input at block 410) isincorrect (for example, too short, too long, or not recognized as avalid client identifier or reference number. Furthermore, the error canindicate that the client needs to speak with a representative or provideadditional information before being given the corresponding client data.

In response to the error, the service provider system 106 may performvarious subsequent steps. For example, at block 704, the serviceprovider system 106 may identify that the response message included orindicated the error. In some instances, the service provider system 106may be unable to identify which error occurred. In some instances, forexample, when the natural language processor 275 is available, theservice provider system 106 may identify the specific error indicatingthe response message.

Once the service provider system 106 identifies that the responsemessage indicated the error, at block 706 the processor 205 mayincrement an error tracking value in a log or error file 701. In someinstances, the log or error file 701 may identify various transactioninformation. For example, the log or error file 701 may include timeand/or data information for each transaction with the server 102. Forexample, the log or error file 701 may include the data and time thatthe service provider system 106 contacted the server 102, the time thatthe contact was terminated, the phone number dialed, the configurationfile 401 utilized to navigate the phone menu, and a result (positive ornegative) of the transaction (where the transaction is the communicationwith the server 102 to compare or update the client data in the clientrecord). The log or error file 701 may also include an error counterthat tracks a number of error within a time period. For example, the logor error file 701 may be reset periodically (for example, daily, weekly,monthly, and so forth) automatically or manually. In some instances, anyerror (for example, the error navigating the phone menu, the improperdata, and so forth) results in the service provider system 106incrementing the error counter. In some instances, only errors fromnavigating the phone menu result in the service provider system 106incrementing the error counter. In some instances, when the error occursfrom navigating the phone menu, the log or error file 701 may utilizedifferent error counters for different configuration files 401 or aparticular log or error file 701 may be specific to a particular phonenumber or phone menu.

Once the service provider system 106 increments the error counter in thelog or error file 701, the service provider system 106 may compare thevalue of the error counter with a threshold value at block 708. In someinstances, the service provider system 106 establishes the thresholdvalue or enables an operator of the service provider system 106 todynamically set the threshold value. If the value of the error counter(i.e., the number or errors) does not exceed the threshold value, thenthe service provider system 106 may terminate the data flow 700 and/orawait the next parsed converted message (for example, for a next clientrecord processed by the service provider system 106). On the other hand,if the service provider system 106 determines that the number or errorsindicated by the error counter does exceed the threshold value, then theservice provider system 106 identifies the type of error at block 710,specifically that the error is based on the navigation of the phonemenu. Furthermore, when the service provider system 106 determines thatthe error occurred in navigating the phone menu at block 710, then theservice provider system 106 identifies which configuration file 401 hascaused or resulted in the number of errors that exceed the threshold.

To correct the errors in navigating the phone menu, the service providersystem 106 may implement NLP (for example, via the natural languageprocessor 275) to identify a structure of a current phone menu andgenerate a corresponding map or plan for navigating the current phonemenu. As introduced above, the NLP may enable the service providersystem 106 to understand what options are available at each option tree,what responses to provide to appropriately navigate through the optiontrees and the phone menu to provide the client identifier and obtain thecorresponding client data. For example, different from the processing ofthe service provider system 106 with the NLP process 501 in the dataflow 500, in the data flow 700, the service provider system 106 may usethe NLP process 501 to navigate various options of the options trees inthe phone menu. This may involve creating the map or plan thatidentifies options selections at each options tree that lead to futureprompts. For example, when iteratively navigating the phone menu atblock 718, the NLP process 501 may navigate each option at each optiontree and identify what prompt follows each option selection. The fullmap generated by the NLP process 501, thus, may include more informationthan is necessary to navigate the phone menu to obtain the correspondingclient data from the server 102.

To implement the NLP and correct a configuration file 401 based on toomany errors occurring, the service provider system 106 may identify theappropriate configuration file 401 at block 712 and access theidentified configuration file 401. Based on the information in theidentified configuration file 401, the service provider system 106 maydial the corresponding phone number for the server 102 at block 713,which may be identified in the configuration file itself. The serviceprovider system 106 may then initialize the NLP at block 714 and utilizethe NLP process 501 of FIG. 5 to navigate the phone menu for the server102. The service provider system 106 may utilize the NLP process 501 towait for an answer to the call at block 716 and then iterativelynavigate the phone menu at block 718 by parsing the phone menus;identifying button press and delay information 707. Iterativelynavigating the phone menu may comprise navigating each option of eachoption tree in the phone menu, as discussed above. Based on suchiterative navigating of the phone menu, the service provider system 106may use the NLP process 501 to generate the map of the phone menu, forexample, at block 720. In some instances, generating the map may includeidentifying which options to select to arrive at the prompt for theclient identifier or reference number before obtaining the responsemessage including the corresponding client data. In some instances,generating the map further includes identifying how long to delayentering data into the phone menu to allow recitation of prompts and/orphone menu option trees to be fully recited (if needed by the phonemenu). In some instances, where the phone menu is able to accept,recognize, and process inputs entered during recitation of a prompt oroptions tree, the map may be updated to reduce delays between enteringoption selections and/or entering of the client identifier or referencenumber. The identification of the appropriate options to select toarrive at the prompt for the client identifier or reference numberbefore obtaining the response message may identify the route to beintroduced into the instructions for navigating the phone menu for theconfiguration file 401. Thus, at block 722, the service provider system106 may update the configuration file 401 with the updated map and/orinstructions to appropriately navigate the phone menu to obtain thecorresponding client data. The data flow 700 can be repeated based onthe error counts exceeding the threshold or based on any other indicatorthat the phone menu changed.

Example Flowchart for Updating Files and Generating a User InterfaceBased on Data Obtained from the Phone Menu for a Server

FIG. 8 depicts a flowchart for a method 800 of using a system describedherein to update information in a client file using the configurationfile 401 or NLP process 501, according to the data flow of one or moreof FIGS. 3, 4, and 5 and dynamically updating a managing interface asshown in FIGS. 9A-9D. The system that performs the method 800 may beimplemented, at least in part, by the service provider system 106 ofFIGS. 1A and 1B.

In some aspects, the service provider system 106 provides a userinterface (for example, via the I/O interface 235) through which anoperator of the service provider system 106 can provide informationand/or inputs to the service provider system 106 and view and/orinteract with data presented by the service provider system 106.Examples of screenshots of the user interface are described in moredetail below with reference to and shown in FIGS. 9A-9D.

The flowchart starts at block 802. At block 804, the service providersystem 106 may upload the client file including a plurality of clientrecords that include client data to confirm or update with correspondingclient data from the server 102. In some instances, uploading the clientfile may include introducing the client file to the device 200 from anexternal storage medium 255 or storage or loading the client file intothe main memory 215 or secondary memory 220 from any connected datastorage. In some embodiments, loading the client file comprises theoperator of the device 200 identifying a file from a file location foruse by the device 200 in the method 800. In some embodiments, the clientfile may identify that the client records included therein are to beconfirmed and/or updated based on communications with the server 102that occur via a phone menu accessed via a phone call. Alternatively,the client file may identify that the client records are to be confirmedand/or updated based on communications with the server via a website orother user interface. Additionally, the method 800 may involveidentifying a first client record in the client file and set the firstclient record as a “current client record” for the method 800, at block804.

The flowchart further includes block 806, at which the service providersystem 106 may optionally upload a configuration file (for example, theconfiguration file 401) for use when navigating the phone menu for theserver 102. Block 806 may be optional when a particular configurationfile is associated with the client file loaded at block 804. In suchinstances, selection and uploading of the client file may automaticallyidentify the appropriate configuration file to utilize with the clientfile. The configuration file, as introduced above, may include detailsfor communicating with the server 102 and instructions for navigatingthe user interface for the server 102. For example, when the server 102is accessed via the phone menu and the phone call, the configurationfile may include one or more of the phone number to dial to access thephone menu of the server 102 and instructions for navigating the phonemenu. Furthermore, block 806 may be optional when the device 200utilizes the natural language processor 275 and the NLP process 501 ofFIG. 5 to navigate the phone menu to contact the server 102.

At block 808, the service provider system 106 may call the phone numberfor the server 102 phone menu. In some instances, the phone number isidentified in the configuration file (when loaded) or the client file.At block 808, the method 800 further navigates the phone menu, eitherbased on the configuration file (when loaded) or using the NLP process501. In some instances, this may effectively comprise the method 800following the data flow 400 of FIG. 4 (when the configuration file isloaded at block 806) or following the data flow 500 of FIG. 5 (when theconfiguration file is not loaded and NLP is performed instead). In someinstances, the block 808 involves navigating the phone menu as far asthe prompt for the service provider system 106 to enter the clientidentifier or reference number.

At block 810, the service provider system 106 may enter the clientidentifier or reference number in response to the prompt and await theresponse message from the server 102 via the phone menu. When using theconfiguration file 401, the service provider system 106 may wait for adelay to expire (as defined by the configuration file 401). When usingthe NLP process 501, the service provider system 106 may await for theNLP process 501 to indicate that the response message is being provided.At block 812, the service provider system 106 obtains the responsemessage from the server 102. When the server 102 is being access via thephone menu, the response message may be an audio message that theservice provider system 106 records and/or stores for processing.

At block 814, the service provider system 106 identifies when processingthe current client record being processed completes or results in anerror. The service provider system 106 may determine that processing ofthe current client record completed when (1) the response message fromthe server 102 provides the corresponding client data and (2) theservice provider system 106 completes comparing and/or updating theclient data in the client record with the corresponding client data. Theclient data in the client record may be updated with the correspondingclient data any time that the corresponding client data is differentfrom the client data in the client record. When the client data iscompared and/or updated for the current client record, then the serviceprovider system 106 identifies the current client record as a completedrecord and increments a corresponding completed record counter. In someembodiments, the service provider system 106 can further identify anydifference between the client data in the client record and thecorresponding client data and determine whether the difference exceeds athreshold value (for example, stored in the database 108 or theconfiguration file. The service provider system 106 may furtherdetermine that, when the difference exceeds the threshold value, theclient data has changed to a different level or value.

Alternatively, processing the current client record results in the errorin any of the conditions identified above: (1) the value(s) entered intothe phone menu (for example, at the option trees or in response to theprompt) are invalid, suggesting that the phone menu has changed; theclient identifier or reference number entered (for example, as input atblock 410 or block 510) is incorrect (for example, too short, too long,or not recognized as a valid client identifier or reference number; and(3) the client needs to speak with a representative or provideadditional information before being given the corresponding client data.If the service provider system 106 identifies any of the errors for thecurrent client record, then the service provider system 106 identifiesthe current client record as a record that resulted in an error andincrements a corresponding record error counter.

At block 816, the service provider system 106 may dynamically generateand/or update a visual interface (for example, one or more screens orvalues displayed on one or more of the screenshots of FIGS. 9A-9D). Forexample, the service provider system 106 may generate the screenshots ofFIGS. 9A-9D, which may include the completed record counter and recorderror counter. The service provider system 106 adjust information shownon the visual interface as the service provider system 106 identifieschanges in the processed information.

At block 818, the service provider system 106 determines whether theclient file includes additional client records for processing. If theclient file does include additional client records, then the serviceprovider system 106 increments the current client record to be set to anext client record in the client file at block 820. If, at block 818,the service provider system 106 determines that the client file does notinclude any additional client records, then the method 800 ends at 822.

Example Flowchart for Updating Files and Generating a User InterfaceBased on Data Obtained from the Phone Menu for a Server

FIGS. 9A-9D are example screenshots of a user interface provided by theservice provider system 106 that implements the flowcharts of FIGS. 4-5. In some aspects, the screenshots, in combination, represent progressthrough the data flow 400 where the client records in the client fileare compared and/or updated based on corresponding client data receivedby navigating a phone menu using the configuration file 401.

Each of the screenshots in FIGS. 9A-9D include a progress bar 902 thattracks progress, for example, through completion of comparing and/orupdating all client records in a client file. FIG. 9A provides ascreenshot of the user interface having a choose client file button 904that is operator accessible/selectable and that enables the operator ofthe service provider system 106 to choose the client file to upload. Asdescribed above, the operator can choose the client file from localstorage, networked storage, and/or external storage. The client file mayinclude all client records for which client data is to be comparedand/or updated with corresponding client data from the server 102. FIG.9A shows that the progress bar 902 is at the first step (i.e., uploadingof the client file). Once the operator selects the client file to uploadvia the choose client file button 904, the user interface may update toshow the screenshot of FIG. 9B.

FIG. 9B provides a screenshot of the user interface having a chooseconfiguration file button 906 that is operator accessible/selectable andthat enables the operator of the service provider system 106 to choosethe configuration file 401 to upload. The operator may select theconfiguration file 401 that is associated with the uploaded client fileor that is associated with the server 102 with which the serviceprovider system 106 will communicate to compare and/or update the clientdata in the client records. In some instances, the configuration file401 may be the same for all client files or may be automaticallyassociated with the uploaded client file such that a separate uploadstep is not required. FIG. 9B also includes an initiate the call button908 that is operator accessible/selectable and that initiates the callto the server 102 when selected by the operator. FIG. 9B shows that theprogress bar 902 is at the second step (i.e., uploading of theconfiguration file and initiating the call). Once the operator calls theserver 102 via the initiate the call button 908, the user interface mayupdate to show the screenshot of FIG. 9C.

FIG. 9C provides a screenshot of a status of the comparison/updating ofclient data for the client records in the client file. FIG. 9C showsthat the progress bar 902 is at the third step (i.e., calling the server102 and processing client records). FIG. 9C also includes variousinformation that the service provider system 106 dynamically updateswhile processing the client records in the client file.

For example, FIG. 9C includes a “Current Status” indicator 910, a“Completed” files indicator 912, a “Remaining” file indicator 914, an“Errors” indicator 916, and a “Changed” indicator 918. The “CurrentStatus” indicator 910 identifies the status for the service providersystem 106 when displaying the screenshot of FIG. 9C. Options for theindicator 910 may include “Dialing”, “Navigating Menu”, “ReceivingData”, “Comparing Data”, and “Complete” among other values. When theindicator 910 indicates “Dialing”, the service provider system 106 maybe calling the server 102. When the indicator 912 indicates “NavigatingMenu”, the service provider system 106 may be navigating the phone menuprovided by the server 102. When the indicator 910 indicates “ReceivingData”, the service provider system 106 may be receiving the responsemessage from the server 102. When the indicator 910 indicates “ComparingData”, the service provider system 106 may be comparing the client datain the client record with the corresponding client data from theresponse message. When the indicator 910 indicates “Completed”, theservice provider system 106 may have completed processing the records inthe uploaded client file.

In some instances, FIG. 9C includes a “Complete” indicator 912 thatidentifies a number of client records from the client file that theservice provider system 106 finished processing at the time the serviceprovider system 106 displays the screenshot of FIG. 9C. For example, theindicator 912 of FIG. 9C identifies that the service provider system 106completed processing of 78 client records, which is approximately 34% ofthe total records in the client file (and to be processed).

FIG. 9C may also include a “Remaining” indicator 914 that identifies anumber of client records remaining in the client file that the serviceprovider system 106 must still process. For example, the indicator 914of FIG. 9C indicates that there are 231 records remaining the clientfile when the service provider system 106 displays the screenshot ofFIG. 9C. In some instances, FIG. 9C includes an “Errors” indicator 916that identifies a number of client records from the client file forwhich the service provider system 106 identified an error at the timethe service provider system 106 displays the screenshot of FIG. 9C. Forexample, the indicator 914 of FIG. 9C indicates that the serviceprovider system 106 processed 2 client files that results in an error,which is approximately 2.56% of the client records processed to thepoint at which the service provider system 106 generated the screenshotof FIG. 9C. The FIG. 9C screenshot also includes a “Changed” indicator918 that indicates how many processed client records have updatedcorresponding client data as compared to the client data in the clientrecords. For example, the indicator 918 indicates that 45 of the 78completed client records in the client file had client data that changedwhen compared with the corresponding client data from the server 102,which is approximately 57.7% of the completed records. The FIG. 9Cscreenshot may also include an operator accessible “Stop” button 920that enables the operator to stop and/or pause the processing of theclient file.

FIG. 9D provides a screenshot of a status of the comparison/updating ofclient data for the client records in the client file. FIG. 9D showsthat the progress bar 902 is at the fourth and final step (i.e.,accessing and/or downloading results). FIG. 9D also includes the variousinformation introduced in FIG. 9C, but with final values instead of thecurrent values when the service provider system 106 displayed FIG. 9C.For example, for FIG. 9D, the indicator 910 indicates “Complete”,indicating that the service provider system 106 completed processing therecords in the uploaded client file. Additionally, the “Complete”indicator 912 identifies that the service provider system 106 completedprocessing all 231 client records of the client file, which is 100% ofthe total records in the client file. FIG. 9D shows that the “Remaining”indicator 914 identifies that there are no remaining client records inthe client file that the service provider system 106 must still process.Additionally, FIG. 9D includes the “Errors” indicator 916 identifyingthat the number of client records from the client file for which theservice provider system 106 identified an error during processing is 5,which is approximately 2.86% of the total number of client recordsprocessed. The FIG. 9D screenshot also includes the “Changed” indicator918 that indicates that 180 of the client records in the client file hadclient data that changed when compared with the corresponding clientdata from the server 102. Finally, FIG. 9D includes an operatoraccessible “Download” button 922 that enables the operator to downloaddetails of the changes to the client records in the client file and/ordownload the updated client file.

Example Method for Using an Automated Voice Menu Navigation System toUpdate Local Records Based on Data from a Remote Server

FIG. 10 depicts an example method 1000 for using an automated voice menunavigation system to update local records based on data from a remoteserver. The service provider system 106 of FIGS. 1A and 1B may performthe method 1000, for example, when the device 200 of FIG. 2 implementsthe service provider system 106.

Method 1000 begins at step 1002. Method 1000 proceeds to step 1004 withaccessing a client file including client records for entities for whomdata in a client record is compared to corresponding data at a server(for example, the server 102). In some embodiments, the client fileincludes a plurality of records for a plurality of entities and thecorresponding data at the server is obtained or access via an automateduser interface provided by the server. In some embodiments, the clientrecords in the client file each includes a unique identifiercorresponding to or associated with the data in the corresponding clientrecord. The unique identifier may correspond to the client identifier orreference number that is provided to the server 102 via the userinterface provided by the server to obtain the corresponding data fromthe server 102 for comparison to the data in the client record. In someembodiments, the entity corresponds to a client on behalf of whom theservice provider system 106 is accessing the server 102. In someembodiments, the accessed entity file will be loaded into memory, forexample the main memory 215 or secondary memory 220 of the device 200.In various embodiments, the service provider system 106 accesses theconfiguration filed from the database 108.

Method 1000 then proceeds to step 1006 with accessing a configurationfile comprising instructions for electronically navigating the automateduser interface to access the corresponding data for the entities. Insome embodiments, the accessed configuration file will be loaded intomemory, for example the main memory 215 or secondary memory 220 of thedevice 200. In some instances, the step 1006 is optional, for example,when accessing the client file corresponds to accessing a correspondingor associated configuration file. In various embodiments, the serviceprovider system 106 accesses the configuration filed from the database108.

Method 1000 then proceeds to step 1008 with identifying a client recordcorresponding to one of the plurality of entities. Each client record inthe client file may be processed individually. This means that theservice provider system 106 may contact the server 102 on behalf of eachclient individually and obtain the corresponding data for thatindividual client independent of requests for corresponding data forother clients. However, the service provider system 106 may directrequests for the corresponding data for multiple clients to the server102 at once in parallel with each other. Furthermore, the method 1000may be completed for each record in the client file. For example,various steps of the method 1000 may be repeated for each client recordin the client file.

Method 1000 then proceeds to step 1010 with navigating the automateduser interface based on the instructions of the configuration file. Insome embodiments, the method 1000 may utilize the configuration file 401to navigate the automated user interface provided by the server 102, forexample, as described above in relation to data flow 400 of FIG. 4 . Insome embodiments, the user interface is a phone menu accessed via aphone call or similar communication. Alternatively, the user interfacemay comprise a website or online portal.

Method 1000 then proceeds to step 1012 with inputting the uniqueidentifier in response to a prompt for the unique identifier. Forexample, as described above, navigating the user interface will resultin arriving at the prompt from the server for the client's identifier orreference number. The client identifier or reference number maycorrespond to the unique identifier in the client record identified instep 1008.

Method 1000 then proceeds to step 1014 with determining that a messagereceived in response to the input of the unique identifier includes thecorresponding data. In some embodiments, determining whether the messageincludes the corresponding data comprises converting the receivedmessage into an interpretable or understandable format and parsing thereceived message, as described above with reference to the data flow 400of FIG. 4 . In some embodiments, the method 1000 further determines thatthe message received in response to the input of the unique identifierindicates an error occurred.

Method 1000 then proceeds to step 1016 with updating the record for theentity with the corresponding data based on a determination that themessage includes the corresponding data. In some embodiments, the step1016 may follow comparison of the data in the client record with thecorresponding data received from the server. When the comparisonidentifies a change, then the data in the client record may be updatedwith the corresponding data as that data was received most recently.

Method 1000 then proceeds to step 1018 with updating a log file based ona determination that the message includes the corresponding data. Insome embodiments, the method 1000 may optionally update the log filebased on a determination that the message indicates the error accessingthe corresponding data via the automated user interface and identifywhat error occurred, for example, an error navigating the userinterface, an error with the unique identifier, or another error. Insome instances, the client record may be updated with the errorinformation for transaction history purposes.

As introduced above, the method 1000 may generally be performedrepeatedly or iteratively for each client record in the client file.Specifically, the steps 1008-1018 may be repeated for each client recordin the client file. The method 1000 ends at step 1020.

Notably, FIG. 10 is just one example method, and other methods havingadditional steps, different steps, and/or fewer steps are possibleconsistent with the various embodiments described herein.

Example Clauses

Implementation examples are described in the following numbered clauses:

Clause 1: A system for obtaining electronic data from a serveraccessible via a telecommunications network, the system comprising: acommunication device configured to electronically access an automatedphone system via the telecommunications network using a telephonenumber; a memory circuit configured to store a configuration filecomprising instructions for electronically navigating a phone menu ofthe automated phone system and a log file comprising details oftransactions with the automated phone system; and a processor configuredto: identify a record corresponding to an entity, the record including aunique identifier for the entity and data to be compared withcorresponding data accessible via the automated phone system; access thephone menu of the automated phone system via the communication deviceusing the telephone number; navigate the phone menu based on theconfiguration file and via the communication device; input, via thecommunication device, a unique sequence of digits corresponding to theunique identifier in response to a prompt for the unique identifier fromthe automated phone system and based on the instructions in theconfiguration file; obtain an audio message from the automated phonesystem in response to the input of the unique sequence of digits;convert the audio message to a corresponding text message; determinethat the corresponding text message includes the corresponding data;update the identified record with the corresponding text message basedon a determination that the corresponding text message includes thecorresponding data; and update the log file based on the determinationthat the corresponding text message includes the corresponding data.

Clause 2: The system of Clause 1, wherein the hardware controller isfurther configured to: compare the corresponding data and the data inthe record; identify a difference between the corresponding data and thedata in the record that exceeds a threshold value identified in theconfiguration file; and determine a change in a scope of benefits of theentity when the difference exceeds the threshold value.

Clause 3: The system of Clause 2, wherein the hardware controller isfurther configured to: identify a company value corresponding to thedetermined change; and store the difference, the determined change, andthe company value in a data store.

Clause 4: The system of any one of Clauses 1-3, wherein the hardwarecontroller is further configured to, based on the update to the log fileindicating the error accessing the corresponding data via the automatedphone system: access the automated phone system with natural languageprocessing via a natural language processing component; generate a mapof the phone menu based on accessing the automated phone system via thenatural language processing component; and update the configuration filewith updated instructions for navigating the phone menu and inputtingthe unique sequence of digits based on the generated map of the phonemenu.

Clause 5: The system of Clause 4, wherein the natural languageprocessing component is configured to: process prompts of the phonemenu; and identify options available for responding to the prompts,wherein the hardware controller is configured to generate the map of thephone system based on the processing of the prompts and the identifiedoptions for responding to the prompts.

Clause 6: The system of any one of Clauses 1-5, further comprising: adata store configured to store a plurality of records for a plurality ofcorresponding entities including the entity, wherein the hardwarecontroller is further configured to navigate the phone menu and obtainan audio message for each record and corresponding entity of theplurality of records and entities.

Clause 7: The system of Clause 6, wherein the communication device isfurther configured to: dial the telephone number to access the automatedphone system; and disconnect from the automated phone system afterobtaining the audio message for each record of the plurality of records.

Clause 8: The system of Clause 7, wherein the communication device isfurther configured to, for each respective record of the plurality ofrecords: dial the telephone number; access the automated phone systemfor the corresponding entity; and disconnect from the automated phonesystem.

Clause 9: The system of any one of Clauses 7 and 8, wherein thecommunication device is further configured to, for each respectiverecord of the plurality of records: maintain a connection with theautomated phone system; and access the automated phone system for thecorresponding entity before disconnecting from the automated phonesystem.

Clause 10: The system of any one of Clauses 7-9, wherein the log fileincludes, for individual communication connections with the automatedphone system: a time and date when the communication device dials thetelephone number to initiate the connection with the automated phonesystem; a time when the communication device terminates the connectionwith the automated phone system; and an identifier for each entity whoseentity information was attempted to be compared with the correspondingdata during the connection and a corresponding positive result indicatoror negative result indicator, wherein the positive result indicatorindicates the determination that the corresponding text message includesthe corresponding data for the entity, and wherein the negative resultindicator indicates the determination that the corresponding textmessage indicates the error accessing the corresponding data for theentity.

Clause 11: The system of any one of Clauses 6-10, wherein thecommunication device and the hardware controller are further configuredto access the automated phone system for multiple of the plurality ofrecords in parallel.

Clause 12: The system of any one of Clauses 1-11, wherein theinstructions in the configuration file include: identification of one ormore numbers to enter into the phone menu in response to prompts; delaysto observe when navigating the phone menu; and identification ofavailable options when navigating the phone menu.

Clause 13: A method of obtaining electronic data, the method comprising:accessing a client file, the client file comprising a plurality ofclient records for a plurality of entities for whom respective data inthe respective client record is compared to corresponding data from aserver; accessing a configuration file comprising instructions forelectronically navigating an automated user interface for the server toaccess the corresponding data for the plurality of entities; identifyinga record corresponding to one of the plurality of entities, the recordincluding a unique identifier for the entity and the data to be comparedwith the corresponding data accessed via the automated user interface;navigating the automated user interface based on the instructions of theconfiguration file via a communication device; inputting the uniqueidentifier in response to a prompt for the unique identifier from theautomated user interface via the communication device; determining thata message received in response to the input of the unique identifierincludes the corresponding data; updating the record for the entity withthe corresponding data based on a determination that the messageincludes the corresponding data; and updating a log file based on thedetermination that the message includes the corresponding data.

Clause 14: The method of Clause 13, wherein the automated user interfacecomprises an automated phone system and wherein the instructionscomprise instructions for navigating a phone menu of the automated phonesystem.

Clause 15: The method of any one of Clauses 13 and 14, wherein theunique identifier comprises a unique sequence of alphanumericcharacters.

Clause 16: The method of any one of Clauses 13-15, further comprising:comparing the data and the corresponding data in the record; identifyinga difference between the data and the corresponding data in the recordthat exceeds a threshold value identified in the configuration file; anddetermining a change in a scope of benefits of the entity when thedifference exceeds the threshold value.

Clause 17: The method of any one of Clauses 13-16, further comprising,based on updating the log file based on the determination that themessage indicates the error accessing the corresponding data: accessingthe automated user interface with natural language processing via anatural language processing component; generating a map for navigatingthe automated user interface based on accessing the automated phonesystem via the natural language processing component; and updating theconfiguration file with updated instructions for: electronicallynavigating the automated user interface; and inputting the uniquesequence of digits based on the generated map.

Clause 18: The method of Clause 17, further comprising: processingprompts of the automated user interface; and identifying optionsavailable for responding to the prompts, wherein generating the map ofthe automated user interface comprises generating the map based on theprocessing of the prompts and the identified options for responding tothe prompts.

Clause 19: The method of any one of Clauses 13-18, wherein theinstructions in the configuration file include: identification of one ormore responses to enter into the automated user interface in response toprompts; and delays to observe when navigating the automated userinterface; and identification of available options when navigating theautomated user interface.

Clause 20: A system for obtaining electronic data from a serveraccessible via a telecommunications network, the system comprising: acommunication device configured to electronically access an automateduser interface via the telecommunications network using a communicationidentifier; a memory circuit configured to store a log file comprisingdetails of transactions with the automated user interface and aplurality of records corresponding to a plurality of entities,individual records of the plurality of records including a uniqueidentifier for the corresponding entity and data to be compared withcorresponding data accessible via the automated user interface; and aprocessor configured to: identify a record from the plurality of recordscomprising the data for comparison with the corresponding dataaccessible via the automated user interface; dynamically navigate theautomated user interface via the communication device; automaticallyinput, via the communication device, an alphanumeric sequence ofcharacters representing the unique identifier in response to a promptfor the unique identifier from the automated user interface; determinethat a message received in response to the input of the alphanumericsequence of characters includes the corresponding data; update therecord for the entity with the corresponding data based on adetermination that the message includes the corresponding data; andupdate a log file based on the determination that the message includesthe corresponding data.

Clause 21: A processing system, comprising: a memory comprisingcomputer-executable instructions; one or more processors configured toexecute the computer-executable instructions and cause the processingsystem to perform a method in accordance with any one of claims 1-20.

Clause 22: A processing system, comprising means for performing a methodin accordance with any one of claims 1-20.

Clause 23: A non-transitory computer-readable medium comprisingcomputer-executable instructions that, when executed by one or moreprocessors of a processing system, cause the processing system toperform a method in accordance with any one of claims 1-20.

Clause 24: A computer program product embodied on a computer-readablestorage medium comprising code for performing a method in accordancewith any one of Clauses 1-20.

ADDITIONAL CONSIDERATIONS

The preceding description is provided to enable any person skilled inthe art to practice the various embodiments described herein. Theexamples discussed herein are not limiting of the scope, applicability,or embodiments set forth in the claims. Various modifications to theseembodiments will be readily apparent to those skilled in the art, andthe generic principles defined herein may be applied to otherembodiments. For example, changes may be made in the function andarrangement of elements discussed without departing from the scope ofthe disclosure. Various examples may omit, substitute, or add variousprocedures or components as appropriate. For instance, the methodsdescribed may be performed in an order different from that described,and various steps may be added, omitted, or combined. Also, featuresdescribed with respect to some examples may be combined in some otherexamples. For example, an apparatus may be implemented or a method maybe practiced using any number of the aspects set forth herein. Inaddition, the scope of the disclosure is intended to cover such anapparatus or method that is practiced using other structure,functionality, or structure and functionality in addition to, or otherthan, the various aspects of the disclosure set forth herein. It shouldbe understood that any aspect of the disclosure disclosed herein may beembodied by one or more elements of a claim.

As used herein, the word “exemplary” means “serving as an example,instance, or illustration.” Any aspect described herein as “exemplary”is not necessarily to be construed as preferred or advantageous overother aspects.

As used herein, a phrase referring to “at least one of” a list of itemsrefers to any combination of those items, including single members. Asan example, “at least one of: a, b, or c” is intended to cover a, b, c,a-b, a-c, b-c, and a-b-c, as well as any combination with multiples ofthe same element (for example, a-a, a-a-a, a-a-b, a-a-c, a-b-b, a-c-c,b-b, b-b-b, b-b-c, c-c, and c-c-c or any other ordering of a, b, and c).

As used herein, the term “determining” encompasses a wide variety ofactions. For example, “determining” may include calculating, computing,processing, deriving, investigating, looking up (for example, looking upin a table, a database or another data structure), ascertaining and thelike. Also, “determining” may include receiving (for example, receivinginformation), accessing (for example, accessing data in a memory) andthe like. Also, “determining” may include resolving, selecting,choosing, establishing and the like.

The methods disclosed herein comprise one or more steps or actions forachieving the methods. The method steps and/or actions may beinterchanged with one another without departing from the scope of theclaims. In other words, unless a specific order of steps or actions isspecified, the order and/or use of specific steps and/or actions may bemodified without departing from the scope of the claims. Further, thevarious operations of methods described above may be performed by anysuitable means capable of performing the corresponding functions. Themeans may include various hardware and/or software component(s) and/ormodule(s), including, but not limited to a circuit, an applicationspecific integrated circuit (ASIC), or processor. Generally, where thereare operations illustrated in figures, those operations may havecorresponding counterpart means-plus-function components with similarnumbering.

The following claims are not intended to be limited to the embodimentsshown herein, but are to be accorded the full scope consistent with thelanguage of the claims. Within a claim, reference to an element in thesingular is not intended to mean “one and only one” unless specificallyso stated, but rather “one or more.” Unless specifically statedotherwise, the term “some” refers to one or more. No claim element is tobe construed under the provisions of 35 U.S.C. § 112(f) unless theelement is expressly recited using the phrase “means for” or, in thecase of a method claim, the element is recited using the phrase “stepfor.” All structural and functional equivalents to the elements of thevarious aspects described throughout this disclosure that are known orlater come to be known to those of ordinary skill in the art areexpressly incorporated herein by reference and are intended to beencompassed by the claims. Moreover, nothing disclosed herein isintended to be dedicated to the public regardless of whether suchdisclosure is explicitly recited in the claims.

What is claimed is:
 1. A system for updating a client file, the systemcomprising: a communication device configured to electronically accessan automated phone system associated with a first entity; and aprocessor configured to: access, via the communication device, a phonemenu of the automated phone system associated with the first entity;navigate, via the communication device, the phone menu; input, via thecommunication device, a client identifier in response to a prompt forthe client identifier; obtain, via the communication device, a messagein response to inputting the client identifier; process the message todetermine the message includes corresponding data; identify a differencebetween the corresponding data and client data; and update a clientrecord with the corresponding data, and the difference.
 2. The system ofclaim 1, wherein in order to navigate, via the communication device, thephone menu, the processor is further configured to: access aconfiguration file comprising instructions for electronically navigatingthe phone menu; and navigate the phone menu according to theinstructions in the configuration file.
 3. The system of claim 2,wherein the processor is further configured to: wait for a delay,identified in the configuration file, to expire; record the messageafter expiration of the delay; and store the message.
 4. The system ofclaim 1, wherein in order to navigating, via the communication device,the phone menu, the processor is further configured to: record an audiomessage presented by the phone menu; process the audio message torecognize speech within the audio message using natural languageprocessing; convert the speech to text to detect an option tree; andidentify an option to enter in response to the option tree.
 5. Thesystem of claim 4, wherein the processor is further configured to:generate a map of the phone menu based on navigating the phone menu; andgenerate a configuration file including instructions for navigating thephone menu based on the map of the phone menu.
 6. The system of claim 1,wherein: the message comprises an audio message; and in order to processthe message to determine the message includes the corresponding data,the processor is configured to: convert the audio message to textthrough natural language processing; and parse the text to identify thecorresponding data.
 7. The system of claim 1, wherein the processor isfurther configured to: load the client file, the client file including aplurality of client records; identify a first client record for thefirst entity from the plurality of client records; and generate a visualinterface that provides status of monitored records in the client filebased on the determination the message includes the corresponding data.8. The system of claim 1, wherein the processor is further configured todetermine a change in a scope of benefits of the first entity when thedifference exceeds a threshold value.
 9. The system of claim 1, whereinthe processor is further configured to update a log file based on thedetermination the message includes the corresponding data.
 10. A methodfor updating a client file, comprising: accessing, via a communicationdevice, a phone menu of an automated phone system associated with afirst entity; navigating, via the communication device, the phone menu;inputting, via the communication device, a client identifier in responseto a prompt for the client identifier; obtaining, via the communicationdevice, a message in response to inputting the client identifier;processing the message to determine the message includes correspondingdata; identifying a difference between the corresponding data and clientdata; and updating a client record with the corresponding data, and thedifference.
 11. The method of claim 10, wherein navigating, via thecommunication device, the phone menu, comprises: accessing aconfiguration file comprising instructions for electronically navigatingthe phone menu; and navigating the phone menu according to theinstructions in the configuration file.
 12. The method of claim 11,further comprising: waiting for a delay, identified in the configurationfile, to expire; recording the message after expiration of the delay;and storing the message.
 13. The method of claim 10, wherein navigating,via the communication device, the phone menu, comprises: recording anaudio message presented by the phone menu; processing the audio messageto recognize speech within the audio message using natural languageprocessing; converting the speech to text to detect an option tree; andidentifying an option to enter in response to the option tree.
 14. Themethod of claim 13, further comprising: generating a map of the phonemenu based on navigating the phone menu; and generating a configurationfile including instructions for navigating the phone menu based on themap of the phone menu.
 15. The method of claim 10, wherein: the messagecomprises an audio message; and processing the message to determine themessage includes the corresponding data, comprises: converting the audiomessage to text through natural language processing; and parsing thetext to identify the corresponding data.
 16. The method of claim 10,further comprising: loading the client file, the client file including aplurality of client records; identifying a first client record for thefirst entity from the plurality of client records; and generating avisual interface that provides status of monitored records in the clientfile based on the determination the message includes the correspondingdata.
 17. The method of claim 10, further comprising determining achange in a scope of benefits of the first entity when the differenceexceeds a threshold value.
 18. The method of claim 10, furthercomprising updating a log file based on the determination the messageincludes the corresponding data.
 19. A method for updating a clientfile, comprising: accessing, via a communication device, a phone menu ofan automated phone system associated with a first entity; navigating,via the communication device, the phone menu; inputting, via thecommunication device, a client identifier in response to a prompt forthe client identifier; obtaining, via the communication device, an audiomessage in response to inputting the client identifier; processing themessage to determine the audio message includes corresponding data,comprising: converting the audio message to text through naturallanguage processing; and parsing the text to identify the correspondingdata; identifying a difference between the corresponding data and clientdata; and updating a client record with the corresponding data, and thedifference.
 20. The method of claim 19, further comprising: loading theclient file, the client file including a plurality of client records;identifying a first client record for the first entity from theplurality of client records; and generating a visual interface thatprovides status of monitored records in the client file based on thedetermination the message includes the corresponding data.